﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using QuanLyPhongMach.Context;
using QuanLyPhongMach.Platform;
using QuanLyPhongMach.Model;

namespace QuanLyPhongMach.View
{
    /// <summary>
    /// Interaction logic for WThuoc.xaml
    /// </summary>
    public partial class WThuoc : Page
    {

        private CThuocContext thuocContext;

        public WThuoc()
        {
            InitializeComponent();
            thuocContext = new CThuocContext(CConstant.CONNECTION);
            try
            {
                TaoBangMoi();
                viewThuoc.ItemsSource = thuocContext.LayDanhSachTatCa();
            }
            catch { }
        }

        #region EVENT
        public void Refresh()
        {
            thuocContext.LamMoi();
        }

        private void btnThemMoi_Click(object sender, RoutedEventArgs e)
        {
            LamMoi();
        }

        private void btnLuu_Click(object sender, RoutedEventArgs e)
        {
            if (txtMaSo.Text == thuocContext.LayMaSoMoi().ToString())
            {
                Them();
            }
            else
            {
                Sua();
            }
          
        }

        //Xóa
        private void btnXoa_Click(object sender, RoutedEventArgs e)
        {
            Xoa();
        }

        //Chon
        private void viewThuoc_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Chon();
        }

        private void txtDonGiaQuyDinh_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (!Char.IsDigit((char)KeyInterop.VirtualKeyFromKey(e.Key))
                && !Char.IsControl((char)KeyInterop.VirtualKeyFromKey(e.Key)))
            {
                e.Handled = true;
            }
        }

        private void txtSoLuongTon_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (!Char.IsDigit((char)KeyInterop.VirtualKeyFromKey(e.Key)) &&
                !Char.IsControl((char)KeyInterop.VirtualKeyFromKey(e.Key)))
            {
                e.Handled = true;
            }
        }

        private void txtTenThuoc_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                txtDonGiaQuyDinh.Focus();
            }
        }

        private void txtDonGiaQuyDinh_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                txtSoLuongTon.Focus();
            }
        }

        private void txtSoLuongTon_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                btnLuu.Focus();
            }
        }

        #endregion

        #region FUNCTION

        private void TaoBangMoi()
        {
            GridView grd = new GridView();
            grd.AllowsColumnReorder = true;
            grd.ColumnHeaderToolTip = "THUOC";

            GridViewColumn Ma = new GridViewColumn();
            Ma.DisplayMemberBinding = new Binding("MaThuoc");
            Ma.Header = "Mã Thuốc";
            grd.Columns.Add(Ma);

            GridViewColumn Ten = new GridViewColumn();
            Ten.DisplayMemberBinding = new Binding("TenThuoc");
            Ten.Header = "Tên Thuốc";
            grd.Columns.Add(Ten);

            GridViewColumn DonGia = new GridViewColumn();
            DonGia.DisplayMemberBinding = new Binding("DonGiaQuyDinh");
            DonGia.Header = "Đơn Giá Quy Định";
            grd.Columns.Add(DonGia);

            GridViewColumn SoLuongTon = new GridViewColumn();
            SoLuongTon.DisplayMemberBinding = new Binding("SoLuongTon");
            SoLuongTon.Header = "Số Lượng Tồn";
            grd.Columns.Add(SoLuongTon);

            viewThuoc.View = grd;
        }

        private void TatCacONhap()
        {
            txtMaSo.Clear();
            txtTenThuoc.Clear();
            txtSoLuongTon.Clear();
            txtDonGiaQuyDinh.Clear();
            txtTenThuoc.IsEnabled = false;
            txtSoLuongTon.IsEnabled = false;
            txtDonGiaQuyDinh.IsEnabled = false;

        }

        private void Them()
        {
            //Thêm 
            if (txtTenThuoc.Text != "" && txtSoLuongTon.Text != "" && txtDonGiaQuyDinh.Text != "")
            {
                try
                {
                    CThuoc thuocmoi = new CThuoc(txtTenThuoc.Text, int.Parse(txtDonGiaQuyDinh.Text), int.Parse(txtSoLuongTon.Text));
                    thuocContext.Them(thuocmoi);
                    MessageBox.Show("Thêm Thành Công", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Information);
                    viewThuoc.ItemsSource = thuocContext.LayDanhSachTatCa();
                }
                catch
                {
                    MessageBox.Show("Thêm Thất Bại", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Error);
                }
                LamMoi();
            }
            else
            {
                MessageBox.Show("Không Được Bỏ Trống Các Ô Thông Tin", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Warning);
                txtTenThuoc.Focus();
            }
        }

        private void Sua()
        {
            //Sửa
            try
            {
                var result = MessageBox.Show("Bạn Có Chắc Chắn Sửa Không?", "Thông Báo", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (result == MessageBoxResult.Yes)
                {
                    thuocContext.CapNhat(new CThuoc()
                    {
                        MaThuoc = int.Parse(txtMaSo.Text),
                        TenThuoc = txtTenThuoc.Text,
                        DonGiaQuyDinh = int.Parse(txtDonGiaQuyDinh.Text),
                        SoLuongTon = int.Parse(txtSoLuongTon.Text)
                    });
                    viewThuoc.ItemsSource = thuocContext.LayDanhSachTatCa();
                    MessageBox.Show("Sửa Thành Công!", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
            catch
            {
                MessageBox.Show("Sửa Thất Bại!", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Error);
            }
                
        }

        private void Xoa()
        {
            try
            {
                MessageBoxResult rs = MessageBox.Show("Bạn Có Chắc Chắn Xóa?", "Thông Báo", MessageBoxButton.YesNo, MessageBoxImage.Question);
                if (rs == MessageBoxResult.Yes)
                {
                    thuocContext.Xoa(int.Parse(txtMaSo.Text));
                    MessageBox.Show("Xóa Thành Công", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Information);

                    btnXoa.IsEnabled = false;

                }
            }
            catch
            {
                MessageBox.Show("Xóa Thất Bại", "Thông Báo", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            viewThuoc.ItemsSource = thuocContext.LayDanhSachTatCa();
            TatCacONhap(); 
            
        }

        private void Chon()
        {
            try
            {
                txtTenThuoc.IsEnabled = true;
                txtSoLuongTon.IsEnabled = true;
                txtDonGiaQuyDinh.IsEnabled = true;
                btnXoa.IsEnabled = true;
                if (viewThuoc.SelectedItem is CThuoc)
                {
                    txtMaSo.Text = (viewThuoc.SelectedItem as CThuoc).MaThuoc.ToString();
                    txtTenThuoc.Text = (viewThuoc.SelectedItem as CThuoc).TenThuoc;
                    txtDonGiaQuyDinh.Text = (viewThuoc.SelectedItem as CThuoc).DonGiaQuyDinh.ToString();
                    txtSoLuongTon.Text = (viewThuoc.SelectedItem as CThuoc).SoLuongTon.ToString();

                }
            }
            catch
            { }
        }

        private void LamMoi()
        {
            txtTenThuoc.IsEnabled = true;
            txtSoLuongTon.IsEnabled = true;
            txtDonGiaQuyDinh.IsEnabled = true;
            btnXoa.IsEnabled = false;
            txtMaSo.Text = thuocContext.LayMaSoMoi().ToString();
            txtTenThuoc.Clear();
            txtDonGiaQuyDinh.Clear();
            txtSoLuongTon.Clear();
            txtTenThuoc.Focus();
        }

        #endregion
    }
}
